1. Field of the Invention
The present invention generally relates to rolling code signals.
2. Background Art
A barrier opener system such as a garage door opener (“GDO”) system includes a remote transmitter and a receiver. The transmitter may be handheld or mounted within a vehicle. The receiver is typically located within the garage. The transmitter wirelessly transmits signals upon being actuated by a user. The receiver is operable with the garage door to open or close the garage door upon wirelessly receiving an appropriate signal from the transmitter.
The transmitter may code the transmitted signals using a rolling code transmission technique such that each signal transmitted from the transmitter is different than the signal previously transmitted from the transmitter. The signals are different in that each signal contains a different counter value. The counter value changes (i.e., “rolls”) for each signal transmitted by the transmitter. The receiver is operable to keep current with the counter value changes. As such, generally a signal that is an appropriate signal during a given transmission from the transmitter will not be an appropriate signal in the future. In general, rolling code transmission techniques are employed to prevent an unauthorized user from gaining access to a garage by recording and re-transmitting a signal previously transmitted by the transmitter.
In typical operation, the transmitter repetitively generates an information signal representing a series of digits whenever a GDO button of the transmitter is pushed by a user. The information signal (i.e., the series of digits) are modulated onto a radio frequency (RF) carrier signal to generate a RF signal for wireless transmission from the transmitter. The type of modulation typically employed is pulse width modulation (PWM). Accordingly, an RF signal transmitted from the transmitter includes a RF carrier signal and an information signal. The series of digits of the information signal are either in a binary (base 2) or a trinary (i.e., “ternary”) (base 3) format. In the binary format, the series of digits are represented by a string of zeros and/or ones such as, for example, 00101101001110100 . . . etc. In the trinary format, the series of digits are represented by a string of zeros, ones, and/or twos such as, for example, 010220110201022 . . . etc.
The information signal, which is repeatedly generated for transmission from the transmitter during a given transmission, contains: 1) the serial (identification) number of the transmitter; 2) a button code indicating which GDO button of the transmitter was actuated by the user; and 3) a counter value. The counter value is increased by a predetermined value for each new push of the GDO button (i.e., the counter value is increased by a predetermined value for use with a subsequent signal to be transmitted from the transmitter upon actuation of the GDO button by a user). Part or all of the information signal is usually scrambled or encrypted prior to transmission from the transmitter.
A first rolling code transmission technique uses binary numbers for the information signal. In this first technique, the serial number is not scrambled or encrypted, the button code is encrypted, and the counter value is encrypted. A second rolling code transmission technique uses trinary numbers for the information signal. In this second technique, all three pieces of information are scrambled but not encrypted. The present invention improves upon the scrambled trinary number rolling code transmission technique.
The general operation and features of a typical scrambled trinary number rolling code transmission technique is as follows. Initially, a serial number of the transmitter and a counter value are stored. The serial number is stored as a 20 digit trinary serial number and is fixed. The counter value is stored as a 32 bit binary counter value and changes for each GDO button push. Upon a new GDO button push, this technique performs the following algorithm:
1) add a fixed numerical value such as the numerical value “3” to the 32 bit binary counter value to generate a new 32 bit binary counter value, and store the new 32 bit binary counter value for the next GDO button push;
2) mirror the 32 bit binary counter value bitwise end-to-end;
3) set the highest ordered bit of the mirrored 32 bit binary counter value to zero;
4) convert the numerical value of the mirrored 32 bit binary counter value to a 20 digit trinary counter value;
5) encode the 20 digit trinary serial number using a scrambling algorithm based on the 20 digit trinary counter value;
6) successively interleave the trinary digits of the scrambled 20 digit trinary serial number and the 20 digit trinary counter value to thereby generate a 40 digit trinary word;
7) transmit, from the transmitter, the 40 digit trinary word by pulse width modulating a RF carrier signal with the 40 digit trinary word;
8) receive, by the receiver, the 40 digit trinary word;
9) obtain from the 40 digit trinary word the 20 digit trinary serial number and the 20 digit trinary counter value; and
10) convert the numerical value of the 20 digit trinary counter value into binary form to obtain the 32 bit binary counter value.
A disadvantage of this rolling code transmission technique is the binary to trinary conversion at the transmitter (step #4) and the trinary to binary conversion at the receiver (step #10). Such conversions between binary and trinary numbers are computationally intensive because they require divisions or multiple subtractions.